package br.com.vti.sisp_sicrim.antigo.controller.programa;

import br.com.caelum.vraptor.Result;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idctc001;
import br.com.vti.sisp_sicrim.antigo.model.DidCadastro;
import br.com.vti.sisp_sicrim.antigo.model.SicControle;
import br.com.vti.sisp_sicrim.antigo.model.Tablele;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;
import br.com.vti.sisp_sicrim.antigo.util.UtilBean;

public class Idccc001 {

	Idctc001 idctc001;
	FuncoesGerais funcoes = new FuncoesGerais();
	Result result;
	Sessao sessao;
	String chassi;
	Tablele tablele = new Tablele();
	SicControle vwDvecon = new SicControle();
	String textMsg = "";
	// String dataCorrente = "";
	String tipdoc = "";
	String datexp = "";
	String comuex = "";
	String endere = "";
	String comple = "";
	String comuen = "";
	String codpro = "";
	String codcut = "";
	String corolh = "";
	String tipcab = "";
	String corcab = "";
	String datdoc = "";
	String matfun = "";
	String matesp = "";
	String datatu = "";
	String ordens = "";
	String datemi = "";
	String tidoem = "";
	String nomfun = "";
	String datnat = "";
	String codpor = "";

	public Idccc001(Result result, Sessao sessao) {
		this.result = result;
		this.sessao = sessao;
	}

	public Idctc001 executar(DidCadastro vwDidcad) throws Exception {
		idctc001 = new Idctc001(true, sessao);

		idctc001.setDinidenumpro(vwDidcad.getNumeroProtocolo());
		idctc001.setDinideregger(vwDidcad.getNumeroRg());
		idctc001.setDinidenumcpf(vwDidcad.getNumeroCpf());
		idctc001.setDiaidenomide(vwDidcad.getNomeIdent());
		idctc001.setDinidenumvia(vwDidcad.getNumeroVia());
		idctc001.setDiaidenomant(vwDidcad.getNomeAnterior());
		idctc001.setDiaidenompai(vwDidcad.getNomePai());
		idctc001.setDiaidenommae(vwDidcad.getNomeMae());
		idctc001.setDiaideufnasc(vwDidcad.getUfMunicipioNasc());
		idctc001.setDinidepispas(vwDidcad.getNumeroPisPasep());
		idctc001.setDinidetipsan(vwDidcad.getTipoSangue());
		idctc001.setDinidefatorh(vwDidcad.getFatorRh());
		idctc001.setDiaidesinpar(vwDidcad.getSinaisParticulares());
		idctc001.setDiaidemicrof(vwDidcad.getCodigoMicrofilme());
		idctc001.setDiniderenaid(vwDidcad.getRenaid());
		idctc001.setDiaideobserv(vwDidcad.getObservacaoAdocao());

		if (!vwDidcad.getNomeAnterior().trim().equals("") || vwDidcad.getRegistroAnterior() > 0) {
			idctc001.setAnt0("SIM");
		}
		if (vwDidcad.getNumeroCartTrab() > 0) {
			idctc001.setTra0("SIM");
		}
		if (vwDidcad.getNumeroPortariaMinist() > 0) {
			idctc001.setNat0("SIM");
		}
		if (vwDidcad.getNumeroTituloEleitor() > 0) {
			idctc001.setTit0("SIM");
		}
		if (vwDidcad.getNumeroProntuarioCnh() > 0) {
			idctc001.setCnh0("SIM");
		}
		if (vwDidcad.getNumeroCertificado() > 0) {
			idctc001.setMil0("SIM");
		}

		chassi = UtilBean.moveSubstring("", 0, 13, "N", vwDidcad.getNumeroRg());
		/* MOVEEDIT 3 41 458 */
		if (vwDvecon.pesquisaNumeroChassi(chassi)) {
			idctc001.setEmi0("SIM");
		}
		vwDvecon.fecha();

		idctc001.setDatnas(vwDidcad.getDataNasc());
		idctc001.setDatnas((int) funcoes.sissd002(idctc001.getDatnas()));
		// INVERTE DATA
		if (vwDidcad.getCodigoSexo() == 1) {
			idctc001.setCodsex("MASCULNO");
		} else {
			idctc001.setCodsex("FEMININO");
		}

		switch (vwDidcad.getNacionalidadeIdent()) {
		case 2: {
			idctc001.setNacion("NATURALIZADO");
			break;
		}
		case 1: {
			idctc001.setNacion("BRASILEIRO");
			break;
		}
		case 3: {
			idctc001.setNacion("NAT/PORTUGUES");
			break;
		}
		case 4: {
			tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 0, 3, "N", 209);
			tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 3, 12, "N", vwDidcad.getPaisOrigem());
			tablele.resp = funcoes.sisst001(209, vwDidcad.getPaisOrigem(), tablele.resp);
			// //PESQUISA TABELA
			idctc001.setNacion(tablele.resp);
			break;
		}
		default: {
			break;
		}
		}

		tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 0, 3, "N", 001);
		tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 3, 12, "N", vwDidcad.getNomeMunicipioIdent());
		tablele.resp = funcoes.sisst001(1, vwDidcad.getNomeMunicipioIdent(), tablele.resp);
		// //PESQUISA TABELA

		idctc001.setComuna(tablele.resp);
		tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 0, 3, "N", 202);
		tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 3, 12, "N", vwDidcad.getEstadoCivil());
		tablele.resp = funcoes.sisst001(202, vwDidcad.getEstadoCivil(), tablele.resp);
		// //PESQUISA TABELA

		idctc001.setEstciv(tablele.resp);
		tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 0, 3, "N", 207);
		tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 3, 12, "N", vwDidcad.getNumeroPosto());
		tablele.resp = funcoes.sisst001(207, vwDidcad.getNumeroPosto(), tablele.resp);
		// PESQUISA TABELA

		idctc001.setNumpos(tablele.resp);
		if (!(idctc001.getCamtela() == 02 || idctc001.getCamtela() == 22) && !idctc001.getOperacao().equals("CAD")) {
			switch (idctc001.getLincol()) {
			case 15017: {
				textMsg = "RG:" + vwDidcad.getRegistroAnterior() + // 9999999999999
				" UF:" + vwDidcad.getUfRegAnterior() + "<br>" + "NOME:" + vwDidcad.getNomeAnterior();
				break;
			}
			case 15047: {
				datexp = String.valueOf(funcoes.sissd002(vwDidcad.getDataExp()));
				// INVERTE DATA
				switch (vwDidcad.getTipoDocumento()) {
				case 1: {
					tipdoc = "NASCIMENTO";
					break;
				}
				case 2: {
					tipdoc = "CASAMENTO";
					break;
				}
				default: {
					break;
				}
				}
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 0, 3, "N", 001);
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 3, 12, "N", vwDidcad.getCodigoMunicipioExp());
				tablele.resp = funcoes.sisst001(1, vwDidcad.getCodigoMunicipioExp(), tablele.resp);
				// PESQUISA TABELA

				comuex = tablele.resp;
				textMsg = "TIPO DOC." + tipdoc + " CERTIDAO:" + vwDidcad.getNumeroCertidao() + " FOLHA:" + vwDidcad.getNumeroFolha() + " LIVRO:" + vwDidcad.getNumeroLivro() + " EXPEDICAO:" + datexp + "<br>" + "V.CIVIL:" + vwDidcad.getVaraCivil() + " OF.:" + vwDidcad.getZonaOficio() + " CART.:" + vwDidcad.getNomeCartorio() + "<br>" + "MUNIC. EXP:" + comuex + "UF:" + vwDidcad.getUfMunicipioExp();
				break;
			}
			case 15077: {
				textMsg = "NUMERO:" + vwDidcad.getNumeroCartTrab() + " SERIE:" + vwDidcad.getNumeroSerieCart();
				break;
			}
			case 16017: {
				textMsg = "NUMERO:" + vwDidcad.getNumeroTituloEleitor() + " UF:" + vwDidcad.getUfTituloEleitor() + "<br>" + "ZONA:" + vwDidcad.getZonaEleitoral() + " SECAO:" + vwDidcad.getNumeroSecao();
				break;
			}
			case 16047: {
				textMsg = "NUMERO:" + vwDidcad.getNumeroCertificado() + " REGIAO:" + vwDidcad.getRegiaoMilitar();
				break;
			}
			case 16077: {
				textMsg = "PRONTUARIO:" + vwDidcad.getNumeroProntuarioCnh() + " UF:" + vwDidcad.getUfCnh();
				break;
			}
			case 17017: {
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 0, 3, "N", 001);
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 3, 12, "N", vwDidcad.getCodigoMunicipio());
				tablele.resp = funcoes.sisst001(1, vwDidcad.getCodigoMunicipio(), tablele.resp);
				comuen = tablele.resp;
				endere = UtilBean.concatena(vwDidcad.getEnderecoIdent(), vwDidcad.getNumeroResidencia());
				comple = UtilBean.concatena(vwDidcad.getComplementoEndereco(), vwDidcad.getNomeBairro());

				textMsg = vwDidcad.getUfMunicipio() + "<br>" + "ENDERECO/NUMERO:" + endere + " COMPL./BAIRRO  :" + comple + "<br>" + "CEP:" + vwDidcad.getCodigoCep() + " MUN " + comuen;
				break;
			}
			case 17047: {
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 0, 3, "N", 201);
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 3, 12, "N", vwDidcad.getCodigoProfissao());
				tablele.resp = funcoes.sisst001(201, vwDidcad.getCodigoProfissao(), tablele.resp);
				codpro = tablele.resp;
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 0, 3, "N", 203);
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 3, 12, "N", vwDidcad.getCodigoCutis());
				tablele.resp = funcoes.sisst001(203, vwDidcad.getCodigoCutis(), tablele.resp);
				codcut = tablele.resp;
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 0, 3, "N", 204);
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 3, 12, "N", vwDidcad.getCodigoCorOlhos());
				tablele.resp = funcoes.sisst001(204, vwDidcad.getCodigoCorOlhos(), tablele.resp);
				corolh = tablele.resp;
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 0, 3, "N", 205);
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 3, 12, "N", vwDidcad.getCodigoCorCabelo());
				tablele.resp = funcoes.sisst001(205, vwDidcad.getCodigoCorCabelo(), tablele.resp);
				corcab = tablele.resp;
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 0, 3, "N", 206);
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 3, 12, "N", vwDidcad.getCodigoTipoCabelo());
				tablele.resp = funcoes.sisst001(206, vwDidcad.getCodigoTipoCabelo(), tablele.resp);
				tipcab = tablele.resp;
				textMsg = "PROFISSAO:" + codpro + "<br>" + "CUTIS:" + codcut + " OLHOS:" + corolh + "<br>" + "CABELOS:" + corcab + " TIPO:" + tipcab + "<br>" + "ALTURA:" + vwDidcad.getAlturaIdent(); // 9.99

				break;
			}
			case 17077: {

				datdoc = String.valueOf(funcoes.sissd002(vwDidcad.getDataDocumento()));
				datatu = String.valueOf(funcoes.sissd002(vwDidcad.getDataAtualizacao()));
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 0, 3, "N", 212);
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 3, 12, "N", vwDidcad.getNumeroOrdem());
				tablele.resp = funcoes.sisst001(212, vwDidcad.getNumeroOrdem(), tablele.resp);
				ordens = tablele.resp;
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 0, 3, "N", 18);
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 3, 12, "N", vwDidcad.getMatriculaFunc());
				tablele.resp = funcoes.sisst001(18, vwDidcad.getMatriculaFunc(), tablele.resp);
				matfun = tablele.resp;
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 0, 3, "N", 18);
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 3, 12, "N", vwDidcad.getMatEsp());
				tablele.resp = funcoes.sisst001(18, vwDidcad.getMatEsp(), tablele.resp);
				matesp = tablele.resp;
				textMsg = "MAT. ATENDENDE:" + vwDidcad.getMatriculaFuncionario() + " DATA DOCUMENTO:" + datdoc + "<br>" + "FUNCIONARIO   :" + vwDidcad.getMatriculaFunc() + " " + matfun + "<br>" + "MAT. ESPECIAL :" + vwDidcad.getMatEsp() + " " + matesp + "<br>" + "DATA ATUALIZ.:" + datatu + // 99/99/9999
				" MOTIVO:" + ordens;
				break;
			}
			case 18017: {
				while (vwDvecon.pesquisaNumeroChassi(chassi)) {

					datemi = String.valueOf(funcoes.sissd002(vwDvecon.getDataEmissao()));
					tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 0, 3, "N", 18);
					tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 3, 12, "N", vwDvecon.getMatriculaFunc());
					tablele.resp = funcoes.sisst001(18, vwDvecon.getMatriculaFunc(), tablele.resp);
					nomfun = tablele.resp;
					tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 0, 3, "N", 19);
					tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 3, 12, "N", vwDvecon.getTipoDocumento());
					tablele.resp = funcoes.sisst001(19, vwDvecon.getTipoDocumento(), tablele.resp);
					tidoem = tablele.resp;
					textMsg = "NUMERO DOC.:" + vwDvecon.getNumeroDocumento() + " DATA:" + datemi + // 99/99/9999
					"<br>" + "TIPO DOCUMENTO:" + tidoem + "<br>" + "FUNCIONARIO:" + vwDvecon.getMatriculaFunc() + " " + nomfun;
				}
				break;
			}
			case 18047: {

				datnat = String.valueOf(funcoes.sissd002(vwDidcad.getDataNaturalizacao()));
				// INVERTE DATA
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 0, 3, "N", 209);
				tablele.pesq = UtilBean.moveSubstring(tablele.pesq, 3, 12, "N", vwDidcad.getPaisOrigem());
				tablele.resp = funcoes.sisst001(209, vwDidcad.getPaisOrigem(), tablele.resp);
				// TELA //PESQUISA TABELA

				codpor = tablele.resp;
				textMsg = "PORT.MIN. " + vwDidcad.getNumeroPortariaMinist() + " " + vwDidcad.getAnoPortariaMinist() + "<br>" + "DATA NAT. " + datnat + // 99/99/9999
				"<br>" + "PAIS " + codpor;
				break;
			}
			case 18077: {
				textMsg = "DIR.:" + vwDidcad.getPolegarDireito() + " " + vwDidcad.getIndicadorDireito() + " " + vwDidcad.getMedioDireito() + " " + vwDidcad.getAnularDireito() + " " + vwDidcad.getMinimoDireito() + " " + "<br>" + "ESQ.:" + vwDidcad.getPolegarEsquerdo() + " " + vwDidcad.getIndicadorEsquerdo() + " " + vwDidcad.getMedioEsquerdo() + " " + vwDidcad.getAnularEsquerdo() + " " + vwDidcad.getMinimoEsquerdo();
				break;
			}
			default: {
				break;
			}
			}
		}

		return idctc001;
	}
}
